<?php
/**
 * Created by PhpStorm.
 * excel导出类
 * User: lizhuang
 * Date: 2015/3/28
 * Time: 15:48
 */

class Excel {
    public  $inEncode; //一般是页面编码

    public  $outEncode; //一般是Excel文件的编码
    /**
     *设置编码
     */
    public function setEncode($incode,$outcode){
        $this->inEncode=$incode;

        $this->outEncode=$outcode;
    }
    /**
     *设置Excel的标题栏
     */
    public function setTitle($titlearr){
        $title="";
        foreach($titlearr as $v){
            if($this->inEncode!=$this->outEncode){
                $title.=iconv($this->inEncode,$this->outEncode,$v)."\t";
            }
            else{
                $title.=$v."\t";
            }
        }
        $title.="\n";
        return $title;
    }
    /**
     *设置Excel内容
     */
    public function setRow($array){
        $content="";
        foreach($array as $k => $v){
            foreach($v as $vs){
                if($this->inEncode!=$this->outEncode){
                    $content.=iconv($this->inEncode,$this->outEncode,$vs)."\t";
                }
                else{
                    $content.=$vs."\t";
                }
            }
            $content.="\n";
        }
        return $content;
    }
    /**
     *生成并自动下载Excel
     * $titlearr 标题栏数组
     * $array 内容数组
     * $filename 文件名称 (为空，已当前日期为名称)
     */
    public function getExcel($titlearr,$array,$filename=''){
        if($filename==''){
            $filename=date("Y-m-d");
        }
        $title=$this->setTitle($titlearr);
        $content=$this->setRow($array);
        header("Content-type:application/vnd.ms-excel");
        header("Content-Disposition:filename=".$filename.".xls");
        echo $title;
        echo $content;
        die();
        header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
        header('Expires:0');
    }
}
